﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLTV_V2.BussinessObject;
using QLTV_V2.BussinessLogic;
using QLTV_V2.DataAccess;

namespace QLTV_V2
{
    public partial class FrmLaptheBandoc : DevComponents.DotNetBar.Office2007RibbonForm
    {
        ConnectData conn = new ConnectData();
        Utilities uti = new Utilities();
        BanDocBUS bdBUS = new BanDocBUS();
        DataTable tb = new DataTable();
        public int kt;
        public string mabandoc;
        public FrmLaptheBandoc()
        {
            InitializeComponent();
        }

        private void FrmLaptheBandoc_Load(object sender, EventArgs e)
        {
            try
            {
                //Load combobox nhom ban doc
                DataTable tbNhom = uti.getDataSource("NhomBanDoc", "TenNhom");
                comb_Manhom.DataSource = tbNhom;
                DataRow drLoaiSach = tbNhom.NewRow();
                drLoaiSach["MaNhom"] = "none";
                drLoaiSach["TenNhom"] = "Chưa chọn";
                tbNhom.Rows.InsertAt(drLoaiSach, 0);
                comb_Manhom.DisplayMember = "TenNhom";
                comb_Manhom.ValueMember = "MaNhom";
                comb_Manhom.SelectedIndex = 0;
                //Load Gioi tinh
                comb_GioiTinh.ResetText();
                comb_GioiTinh.Items.Add("Nam");
                comb_GioiTinh.Items.Add("Nữ");
                comb_GioiTinh.SelectedIndex = 0;
                //Load trang thai the
                comb_TTThe.ResetText();
                comb_TTThe.Items.Add("Kích hoạt");
                comb_TTThe.Items.Add("Hết hạn");
                comb_TTThe.Items.Add("Bị khóa");
                comb_TTThe.SelectedIndex = 0;
                //Load ngay hien tai cho DateTime_Ngaylap
                timer1.Enabled = true;
                DateTime now = System.DateTime.Now;
                dat_NgaySinh.Value = now;
                date_Ngaylap.Value = now;
                date_Ngayhet.Value = now.AddYears(1);
                //Load form khi sửa
                if (kt == 2)
                {
                    BanDoc bd = new BanDoc();
                    bd = bdBUS.GetBanDoc_Object(mabandoc);
                    txt_MaBandoc.Text = bd.MaBanDoc;
                    txt_TenBandoc.Text = bd.TenBanDoc;
                    dat_NgaySinh.Value = bd.NgaySinh;
                    if (bd.GioiTinh == true)
                        comb_GioiTinh.SelectedItem = "Nam";
                    else
                        comb_GioiTinh.SelectedItem = "Nữ";
                    txt_Diachi.Text = bd.DiaChi;
                    txt_Email.Text = bd.Email;
                    txt_SoDT.Text = bd.SoDT;
                    date_Ngaylap.Value = bd.NgayLapThe;
                    date_Ngayhet.Value = bd.NgayHetHan;
                    txt_Anhcanhan.Text = bd.HinhAnh;
                    pic_Anh.BackgroundImage = System.Drawing.Image.FromFile(bd.HinhAnh, true);
                    comb_TTThe.SelectedItem = bd.TTThe;
                    try
                    {
                        comb_Manhom.SelectedValue = bd.MaNhom;
                    }
                    catch
                    {
                        comb_Manhom.SelectedIndex = 0;
                    }

                }
            }
            catch
            { }
        }
//Lưu thông tin
        private void btn_luu_Click(object sender, EventArgs e)
        {
            BanDoc bandoc = new BanDoc();
            bandoc = LayTTBanDoc();
            if (checkSave(bandoc) == true)
            {
                //Luu anh
                string img = txt_Anhcanhan.Text.Substring(txt_Anhcanhan.Text.LastIndexOf('\\') + 1);
                if (img != "")
                {
                    try
                    {
                        pic_Anh.Image.Save(Application.StartupPath + @"\Images\BanDoc\" + img);
                    }
                    catch
                    {

                    }
                }
                if (bdBUS.checkSave(bandoc) == true)
                {
                    if (kt == 1)//Thêm
                    {
                        if (uti.CheckExitsValue("BanDoc", "MaBanDoc", bandoc.MaBanDoc) == true)
                        {
                            if (bdBUS.InsertBandoc(bandoc) == true)
                            {
                                MessageBox.Show("Thêm thành công", "Thông báo");
                                btn_Inthe.Enabled = true;
                            }
                            else
                                MessageBox.Show("Không thể lưu, kiểm tra lại thông tin!", "Thông báo");
                        }
                        else
                            MessageBox.Show("Mã bạn đọc đã tồn tại !", "Thông báo");
                    }
                    else //Sửa
                    {
                        if (mabandoc.ToUpper() != bandoc.MaBanDoc.ToUpper()) //Thay đổi khóa chính thì kiểm tra trùng khóa
                        {
                            if (uti.CheckExitsValue("BanDoc", "MaBanDoc", bandoc.MaBanDoc) == true)
                            {
                                if (bdBUS.UpdateBandoc(bandoc, mabandoc) == true)
                                {
                                    MessageBox.Show("Lưu thành công!", "Thông báo");
                                    btn_Inthe.Enabled = true;
                                }
                                else
                                    MessageBox.Show("Không thể lưu, kiểm tra lại thông tin!", "Thông báo");
                            }
                            else
                                MessageBox.Show("Mã bạn đọc đã tồn tại !", "Thông báo");
                        }
                        else //Không thay đổi khóa chính
                        {
                            if (bdBUS.UpdateBandoc(bandoc, mabandoc) == true)
                            {
                                MessageBox.Show("Lưu thành công!", "Thông báo");
                                btn_Inthe.Enabled = true;
                            }
                            else
                                MessageBox.Show("Không thể lưu, kiểm tra lại thông tin!", "Thông báo");
                        }
                    }
                }
            }
        }
//Lấy TT bạn đọc
        private BanDoc LayTTBanDoc()
        {
                BanDoc bandoc = new BanDoc();
                bandoc.MaBanDoc = txt_MaBandoc.Text.ToUpper();
                bandoc.TenBanDoc = txt_TenBandoc.Text;
                bandoc.NgaySinh = Convert.ToDateTime(dat_NgaySinh.Value);
                if (comb_GioiTinh.SelectedItem.ToString() == "Nam")
                    bandoc.GioiTinh = true;
                else
                    bandoc.GioiTinh = false;
                bandoc.DiaChi = txt_Diachi.Text;
                bandoc.Email = txt_Email.Text;
                bandoc.SoDT = txt_SoDT.Text;
                bandoc.NgayLapThe = Convert.ToDateTime(date_Ngaylap.Value);
                bandoc.NgayHetHan = Convert.ToDateTime(date_Ngayhet.Value);
                bandoc.MaNhom = comb_Manhom.SelectedValue.ToString();
                string img = txt_Anhcanhan.Text.Substring(txt_Anhcanhan.Text.LastIndexOf('\\') + 1);
                if (img != "")
                    bandoc.HinhAnh = @"Images\BanDoc\" + img;
                else
                {
                    bandoc.HinhAnh = @"Images\BanDoc\no-avatar.jpg";
                }
                bandoc.TTThe = comb_TTThe.SelectedItem.ToString();
                return bandoc;
        }
        //kIỂM TRA THÔNG TIN BẠN ĐỌC TRƯỚC KHI LƯU
        bool checkSave(BanDoc bd)
        {
            if (bd.MaBanDoc.Equals(""))
            {
                MessageBox.Show("Chưa nhập mã thẻ!", "Thông báo");
                txt_MaBandoc.Focus();
                return false;
            }
            if (bd.TenBanDoc.Equals(""))
            {
                MessageBox.Show("Chưa nhập tên bạn đọc!", "Thông báo");
                txt_TenBandoc.Focus();
                return false;
            }
            if (comb_Manhom.SelectedIndex == 0)
            {
                MessageBox.Show("Chưa chọn loại thẻ!", "Thông báo");
                comb_Manhom.Focus();
                return false;
            }
            if (date_Ngaylap.Text == "")
            {
                MessageBox.Show("Chưa nhập ngày lập thẻ", "Thông báo");
                date_Ngaylap.Focus();
                return false;
            }
            if (date_Ngayhet.Text == "")
            {
                MessageBox.Show("Chưa nhập ngày hết hạn", "Thông báo");
                date_Ngayhet.Focus();
                return false;
            }
            if (dat_NgaySinh.Text == "")
            {
                MessageBox.Show("Ngày sinh không hợp lệ!", "Thông báo");
                dat_NgaySinh.Focus();
                return false;
            }
            if (bd.DiaChi.Equals(""))
            {
                MessageBox.Show("Chưa nhập địa chỉ liên hệ","Thông báo");
                txt_Diachi.Focus();
                return false;
            }
            if(bd.Email!="")
                if (uti.isValidEmail(bd.Email) == false)
                {
                    MessageBox.Show("Email không hợp lệ", "Thông báo");
                    txt_Email.Focus();
                    return false;
                }
            if (bd.SoDT != "" && uti.checkDigit(bd.SoDT) == false)
            {
                MessageBox.Show("Số ĐT không đúng", "Thông báo");
                txt_SoDT.Focus();
                return false;
            }
           
            return true;
        }
        void resetText()
        {
            txt_Diachi.Text = "";
            txt_Email.Text = "";
            txt_MaBandoc.Text = "";
            txt_SoDT.Text = "";
            txt_TenBandoc.Text = "";
            comb_GioiTinh.SelectedIndex = 0;
            comb_Manhom.SelectedIndex = 0;
            comb_TTThe.SelectedIndex = 0;
            dat_NgaySinh.Value = System.DateTime.Now;
            date_Ngayhet.Value = System.DateTime.Now;
            date_Ngaylap.Value = System.DateTime.Now;
        }
//Chọn ảnh
        private void btn_Brown_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "All File (*.*)|*.*|JPG Files(*.JPG)|*.JPG | GIF Files(*.GIF)|*.GIF";
            if (ofd.ShowDialog(this) == DialogResult.OK)
            {
                pic_Anh.Image = Image.FromFile(ofd.FileName);
                string filename = ofd.FileName;
                txt_Anhcanhan.Text = filename.ToString();
            }
        }        
//In thẻ
        private void btn_Inthe_Click(object sender, EventArgs e)
        
        {
            MessageBox.Show(txt_MaBandoc.Text);
            frmReportBanDoc frm = new frmReportBanDoc();
            frm.dtb_BanDoc = bdBUS.getDataTable_BanDoc(txt_MaBandoc.Text);
           
            frm.ShowDialog();
        }
//Thoát
        private void btn_Dong_Click(object sender, EventArgs e)
        {
            this.Close();
        }


    }
}
